package com.qzy.singleton;

/**
 *  4、双检锁/双重校验锁
 * @描述
 * @创建人 joy_qiu
 * @创建时间 2019-12-23-14:15
 * @修改人和其它信息
 * 4、双检锁/双重校验锁（DCL，即 double-checked locking）
 * JDK 版本：JDK1.5 起
 *
 * 是否 Lazy 初始化：是
 *
 * 是否多线程安全：是
 *
 * 实现难度：较复杂
 *
 * 描述：这种方式采用双锁机制，安全且在多线程情况下能保持高性能。
 * getInstance() 的性能对应用程序很关键。
 */
public class Singleton4 {
    private Singleton4(){}
    private volatile static Singleton4 singleton4;
    public static Singleton4 init(){
        if (singleton4==null){
            synchronized(Singleton4.class){
                singleton4 = new Singleton4();
            }
        }
        return singleton4;
    }
}
